#ifndef HEARTHOLDER_H
#define HEARTHOLDER_H

#include <list>
#include "Animator.h"
#include "Hearts.h"
#include "FlashingAnimation.h"
#include "FlashingAnimator.h"
#include "TrophyDisplay.h"

using namespace std;

class HeartHolder {
private:
	static std::list<Hearts *> hearts;
	static bool arePaused;
	static TrophyDisplay *trophyDisplay;
public:
	static bool heartBroken;
	static int inForCheck;
	static void Initialize(void);
	static void SetTrophyDisplay(TrophyDisplay *_tdisplay) { trophyDisplay = _tdisplay; }
	static void NewHeart(Dim _x, Dim _y, AnimationFilm* film, animid_t id);
	static void Register(Hearts* h);
	static bool spinachEnabled(void);
	static void DisplayAll(void);
	static void Remove(Hearts* h);
	static bool Flashing(void);
	static std::list<Hearts *> getHeartList(void);
	static void PauseHearts(timestamp_t currtime);
	static void ResumeHearts(void);
	static bool isHeartBroken(void) { return heartBroken; };
	static void breakHeart() { heartBroken = true; };
	HeartHolder(void);
	~HeartHolder(void);
};

#endif